//#include <iostream>
//using namespace std;
//class A
//{
//public:
//	A() { ++_scount; }
//	A(const A& t) { ++_scount; }
//	~A() { /*--_scount;*/ }
//	static int GetACount() { return _scount; }
//private:
//	static int _scount;
//};
//int A::_scount = 0;
//
//A func()
//{
//	A a4;
//	return a4;
//}
//
//int main()
//{
//	A a1;
//	A a2;
//	A a3(a1);
//	func();
//	cout << A::GetACount() << endl;
//	return 0;
//}


//#include <iostream>
//using namespace std;
//class A
//{
//public:
//	A() { ++_scount; }
//	A(const A& t) { ++_scount; }
//	~A() { /*--_scount;*/ }
//	static int GetACount() { return _scount; }
//private:
//	static int _scount;
//};
//int A::_scount = 0;
//
//A func()
//{
//	A a4;
//	return a4;
//}
//
//int main()
//{
//	A a1;
//	A a2;
//	A a3(a1);
//	func();
//	cout << A::GetACount() << endl;
//	return 0;
//}


//#include <iostream>
//using namespace std;
//class Date
//{
//	friend ostream& operator<<(ostream& _cout, const Date& d);
//	friend istream& operator>>(istream& _cin, Date& d);
//public:
//	Date(int year = 1900, int month = 1, int day = 1)
//		: _year(year)
//		, _month(month)
//		, _day(day)
//	{}
//private:
//	   int _year;
//	   int _month;
//	   int _day;
//};
//ostream& operator<<(ostream& _cout, const Date& d)
//{
//	_cout << d._year << "-" << d._month << "-" << d._day;
//	return _cout;
//}
//istream& operator>>(istream& _cin, Date& d)
//{
//	_cin >> d._year;
//	_cin >> d._month;
//	_cin >> d._day;
//	return _cin;
//}
//int main()
//{
//	Date d;
//	cin >> d;
//	cout << d << endl;
//	return 0;
//}
//
//
//
//int globalVar = 1;
//
//static int staticGlobalVar = 1;
//
//void Test()
//
//{
//
//	static int staticVar = 1;
//
//	int localVar = 1;
//
//
//
//	int num1[10] = { 1, 2, 3, 4 };
//
//	char char2[] = "abcd";
//
//	char* pChar3 = "abcd";
//
//	int* ptr1 = (int*)malloc(sizeof(int) * 4);
//
//	int* ptr2 = (int*)calloc(4, sizeof(int));
//
//	int* ptr3 = (int*)realloc(ptr2, sizeof(int) * 4);
//
//	free(ptr1);
//
//	free(ptr3);
//
//}

#include <iostream>
using namespace std;
class A{
public:
	A() 
	{
		cout << "A()" << endl;
	}
	A(int a)
	{
		cout << "A(int a)" << endl;
	}
	~A() 
	{
		cout << "~A()" << endl;
	}
private:
	int _a;
};
int main()
{
	A();
	A(1);
	return 0;
}